home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / program / truview.lha / truview / src / truview.s
Text File  |  1992-08-14  |  17KB  |  686 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. ;
  10. ; TrueColor Display
  11. ;
  12. ; by Smack/Infect (based on the MultiColour idea by Stefan Kost)
  13. ; (use ASM-One V1.25 to assemble)
  14. ;
  15. ;
  16. ; REQUIRES: OS V36+, MC68020+, AGA, FastMem (careful, these are not checked!!)
  17. ;
  18. ;
  19. ; V0.1
  20. ; (191095) -read PPM file (marker 'P6'), show on "PAL:Super-High Res Laced"
  21. ;          -wait for LMB (hardware style) while showing
  22. ;
  23.  
  24.  
  25.  
  26.  
  27.     include    includes:os_macros.is
  28. CALL    MACRO
  29.     jsr     (_LVO\1,a6)
  30.     ENDM
  31.  
  32.  
  33.     section    aaa,code
  34. first_
  35.     basereg    first_,a4
  36.     lea    (first_,pc),a4
  37.  
  38.  
  39. ;--------------------------------------
  40. ; 'open' libs
  41.     move.l    (4.w),a6
  42.     move.l    (378,a6),a0
  43.     lea    (intunam,pc),a1
  44.     CALL    FindName
  45.     move.l    d0,(intuitionbase,a4)
  46.     move.l    (378,a6),a0
  47.     lea    (dosnam,pc),a1
  48.     CALL    FindName
  49.     move.l    d0,(dosbase,a4)
  50.     move.l    d0,a6
  51.  
  52. ;--------------------------------------
  53. ; read command line arguments
  54.     lea    (template,pc),a0
  55.     move.l    a0,d1
  56.     lea    (filenamept,pc),a0
  57.     move.l    a0,d2
  58.     moveq    #0,d3
  59.     CALL    ReadArgs
  60.     move.l    d0,(rdargs,a4)
  61.     beq    ende
  62.  
  63. ;--------------------------------------
  64. ; open file
  65.     move.l    (filenamept,pc),d1
  66.     move.l    #1005,d2
  67.     CALL    Open
  68.     move.l    d0,(fh,a4)
  69.     ble    ende
  70.     move.l    d0,d1
  71.     move.l    (buffpt,pc),d2
  72.     moveq    #30,d3
  73.     CALL    Read
  74.     tst.l    d0
  75.     ble    ende
  76.  
  77. ;--------------------------------------
  78. ; read width and height from file
  79.     move.l    (buffpt,pc),a0
  80.     cmp    #"P6",(a0)+
  81.     bne    ende
  82.     cmp.b    #10,(a0)+
  83.     bne    ende
  84.     moveq    #3,d2
  85.     moveq    #0,d7
  86.     cmp.b    #" ",(4,a0)
  87.     bne.b    .ew1000
  88.     addq    #1,d2
  89.     move.b    (a0)+,d0
  90.     sub.b    #48,d0
  91.     bmi    ende
  92. .w1000    subq.b    #1,d0
  93.     bmi.b    .ew1000
  94.     add    #1000,d7
  95.     bra.b    .w1000
  96. .ew1000    addq    #4,d2
  97.     move.b    (a0)+,d0
  98.     sub.b    #48,d0
  99.     bmi    ende
  100. .w100    subq.b    #1,d0
  101.     bmi.b    .ew100
  102.     add    #100,d7
  103.     bra.b    .w100
  104. .ew100    move.b    (a0)+,d0
  105.     sub.b    #48,d0
  106.     bmi    ende
  107. .w10    subq.b    #1,d0
  108.     bmi.b    .ew10
  109.     add    #10,d7
  110.     bra.b    .w10
  111. .ew10    move.b    (a0)+,d0
  112.     sub.b    #48,d0
  113.     bmi    ende
  114. .w1    subq.b    #1,d0
  115.     bmi.b    .ew1
  116.     addq    #1,d7
  117.     bra.b    .w1
  118. .ew1    move    d7,(picwidth,a4)
  119.  
  120.     cmp.b    #" ",(a0)+
  121.     bne    ende
  122.     moveq    #0,d7
  123.     cmp.b    #10,(4,a0)
  124.     bne.b    .eh1000
  125.     addq    #1,d2
  126.     move.b    (a0)+,d0
  127.     sub.b    #48,d0
  128.     bmi    ende
  129. .h1000    subq.b    #1,d0
  130.     bmi.b    .eh1000
  131.     add    #1000,d7
  132.     bra.b    .h1000
  133. .eh1000    addq    #4,d2
  134.     move.b    (a0)+,d0
  135.     sub.b    #48,d0
  136.     bmi    ende
  137. .h100    subq.b    #1,d0
  138.     bmi.b    .eh100
  139.     add    #100,d7
  140.     bra.b    .h100
  141. .eh100    move.b    (a0)+,d0
  142.     sub.b    #48,d0
  143.     bmi    ende
  144. .h10    subq.b    #1,d0
  145.     bmi.b    .eh10
  146.     add    #10,d7
  147.     bra.b    .h10
  148. .eh10    move.b    (a0)+,d0
  149.     sub.b    #48,d0
  150.     bmi    ende
  151. .h1    subq.b    #1,d0
  152.     bmi.b    .eh1
  153.     addq    #1,d7
  154.     bra.b    .h1
  155. .eh1    move    d7,(picheight,a4)
  156.     cmp.b    #10,(a0)+
  157.     bne    ende
  158.     cmp.l    #"255"<<8+10,(a0)+
  159.     bne    ende
  160.     addq    #4,d2
  161.  
  162.     move.l    (fh,pc),d1
  163.     moveq    #-1,d3
  164.     CALL    Seek
  165.  
  166. ;--------------------------------------
  167. ; set some variables
  168.     move    (picwidth,pc),d0
  169.     mulu    #3,d0
  170.     move    d0,(picbpr3,a4)
  171.     lsr    d0
  172.     move    d0,(screenwidth,a4)
  173.     move    (picheight,pc),(linecount,a4)
  174.     move    (picwidth,pc),d0
  175.     mulu    #18,d0
  176.     move.l    d0,(loadsize,a4)
  177.  
  178. ;--------------------------------------
  179. ; open screen and window
  180.     move    (screenwidth,pc),d0
  181.     add    #63,d0
  182.     and    #-64,d0
  183.     lsr    #3,d0
  184.     move    d0,(bmap,a4)
  185.     move    (picheight,pc),d1
  186.     move    d1,(bmap+2,a4)
  187.     move    #8,(bmap+4,a4)
  188.     mulu    d1,d0
  189.     move.l    d0,(screenplsz,a4)
  190.     lsl.l    #3,d0
  191.     move.l    #$10002,d1
  192.     CALLEXEC AllocMem
  193.     move.l    d0,(chipaddr,a4)
  194.     beq    ende
  195.  
  196.     move.l    (screenplsz,pc),d1
  197.     lea    (bmap+8,pc),a0
  198.     moveq    #7,d7
  199. .bmapll    move.l    d0,(a0)+
  200.     add.l    d1,d0
  201.     dbf    d7,.bmapll
  202.  
  203.     lea    (newscreen,pc),a0
  204.     move    (screenwidth,pc),(4,a0)
  205.     move    (picheight,pc),(6,a0)
  206.     lea    (screentaglist,pc),a1
  207.     CALLINT    OpenScreenTagList
  208.     move.l    d0,(screen,a4)
  209.     beq    ende
  210.  
  211.     lea    (newwindow,pc),a0
  212.     move.l    (screen,pc),(30,a0)
  213.     CALL    OpenWindow
  214.     move.l    d0,(window,a4)
  215.     beq    ende
  216.  
  217.     lea    (chunkytab,pc),a0
  218.     moveq    #0,d1
  219.     move    (bmap,pc),d1
  220.     lsl    #3,d1
  221.     lea    (chunkybuffer),a1
  222.     moveq    #5,d7
  223. .ctll    move.l    a1,(a0)+
  224.     add.l    d1,a1
  225.     dbf    d7,.ctll
  226.  
  227.  
  228.  
  229.     endb    a4
  230.  
  231.  
  232.  
  233.  
  234. mainloop
  235.     btst    #6,$bfe001
  236.     beq    ende
  237.     subq    #6,(linecount)
  238.     blt    www
  239.  
  240.     move.l    (fh,pc),d1
  241.     move.l    (buffpt,pc),d2
  242.     move.l    (loadsize,pc),d3
  243.     CALLDOS    Read
  244.     tst.l    d0
  245.     bmi    ende
  246.  
  247. ;-------------------------------------
  248. ; step 1: 24bit to 8bit chunky - 6 rows at a time
  249.     lea    (rtab+1,pc),a4
  250.     lea    (gtab+1,pc),a5
  251.     lea    (btab+1,pc),a6
  252.     move.l    (buffpt,pc),a0
  253.     lea    (chunkytab,pc),a3
  254.     moveq    #0,d5
  255.     move    (picbpr3,pc),d5
  256.     moveq    #0,d0
  257.     moveq    #0,d1
  258.     moveq    #0,d2
  259.  
  260.     movem.l    (a3)+,a1/a2
  261.     move    (picwidth,pc),d7
  262.     subq    #1,d7
  263.     move    d7,d4
  264. .loop0    move.b    (a0)+,d0
  265.     move.b    (a0)+,d1
  266.     move.b    (a0)+,d2
  267.     move.b    (a5,d1.l*2),(a1)+
  268.     move.b    (a4,d0.l*2),(a2)+
  269.     move.b    (a6,d2.l*2),(a1)+
  270.     dbf    d7,.on0
  271.     bra.b    .end0
  272. .on0    move.b    (a0)+,d0
  273.     move.b    (a0)+,d1
  274.     move.b    (a0)+,d2
  275.     move.b    (a5,d1.l*2),(a2)+
  276.     move.b    (a4,d0.l*2),(a1)+
  277.     move.b    (a6,d2.l*2),(a2)+
  278.     dbf    d7,.loop0
  279. .end0    lea    (a0,d5.l),a0
  280.  
  281.     movem.l    (a3)+,a1/a2
  282.     move    d4,d7
  283. .loop1    move.b    (a0)+,d0
  284.     move.b    (a0)+,d1
  285.     move.b    (a0)+,d2
  286.     move.b    (a4,d0.l*2),(a1)+
  287.     move.b    (a6,d2.l*2),(a2)+
  288.     move.b    (a5,d1.l*2),(a1)+
  289.     dbf    d7,.on1
  290.     bra.b    .end1
  291. .on1    move.b    (a0)+,d0
  292.     move.b    (a0)+,d1
  293.     move.b    (a0)+,d2
  294.     move.b    (a4,d0.l*2),(a2)+
  295.     move.b    (a6,d2.l*2),(a1)+
  296.     move.b    (a5,d1.l*2),(a2)+
  297.     dbf    d7,.loop1
  298. .end1    lea    (a0,d5.l),a0
  299.  
  300.     movem.l    (a3)+,a1/a2
  301.     move    d4,d7
  302. .loop2    move.b    (a0)+,d0
  303.     move.b    (a0)+,d1
  304.     move.b    (a0)+,d2
  305.     move.b    (a6,d2.l*2),(a1)+
  306.     move.b    (a5,d1.l*2),(a2)+
  307.     move.b    (a4,d0.l*2),(a1)+
  308.     dbf    d7,.on2
  309.     bra.b    .end2
  310. .on2    move.b    (a0)+,d0
  311.     move.b    (a0)+,d1
  312.     move.b    (a0)+,d2
  313.     move.b    (a6,d2.l*2),(a2)+
  314.     move.b    (a5,d1.l*2),(a1)+
  315.     move.b    (a4,d0.l*2),(a2)+
  316.     dbf    d7,.loop2
  317. .end2
  318.  
  319. ;-------------------------------------
  320. ; step 2: 8bit chunky to planar
  321.     move.l    (chunkytab,pc),a0
  322.     move.l    (offsetplanes,pc),d1
  323.     move.l    (chipaddr,pc),a1
  324.     lea    (a1,d1.l),a1
  325.     move    (bmap,pc),d0
  326.     mulu    #6,d0
  327.     lea    (a1,d0.l),a5
  328.     add.l    d0,d1
  329.     move.l    d1,(offsetplanes)
  330.     move.l    (screenplsz,pc),a6
  331.     lea    (a1,a6.l),a2
  332.     lea    (a2,a6.l*4),a3
  333.     lea    (a3,a6.l),a3
  334.     move.l    #$0f0f0f0f,d5
  335.     move.l    #$55555555,d6
  336.     move.l    #$3333cccc,d7
  337. .loop
  338.     lea    (chunkytmp,pc),a4
  339.     REPT    4
  340.     movem.l    (a0)+,d0/d1
  341.     move.l    d0,d2
  342.     and.l    d5,d2
  343.     eor.l    d2,d0
  344.     lsl.l    #4,d2
  345.     move.l    d1,d3
  346.     and.l    d5,d3
  347.     eor.l    d3,d1
  348.     lsr.l    #4,d1
  349.     or.l    d3,d2
  350.     or.l    d1,d0
  351.     move.l    d2,d3
  352.     and.l    d7,d3
  353.     move    d3,d1
  354.     clr    d3
  355.     lsl.l    #2,d3
  356.     lsr    #2,d1
  357.     or    d1,d3
  358.     swap    d2
  359.     and.l    d7,d2
  360.     or.l    d2,d3
  361.     move.l    d0,d1
  362.     and.l    d7,d1
  363.     move    d1,d2
  364.     clr    d1
  365.     lsl.l    #2,d1
  366.     lsr    #2,d2
  367.     or    d2,d1
  368.     swap    d0
  369.     and.l    d7,d0
  370.     or.l    d0,d1
  371.     move.l    d1,d2
  372.     lsr.l    #7,d2
  373.     move.l    d1,d0
  374.     and.l    d6,d0
  375.     eor.l    d0,d1
  376.     move.l    d2,d4
  377.     and.l    d6,d4
  378.     eor.l    d4,d2
  379.     or.l    d4,d1
  380.     lsr.l    d1
  381.     move.b    d1,(7*4,a4)    plane 7
  382.     swap    d1
  383.     move.b    d1,(5*4,a4)    plane 5
  384.     or.l    d0,d2
  385.     move.b    d2,(6*4,a4)    plane 6
  386.     swap    d2
  387.     move.b    d2,(4*4,a4)    plane 4
  388.     move.l    d3,d2
  389.     lsr.l    #7,d2
  390.     move.l    d3,d0
  391.     and.l    d6,d0
  392.     eor.l    d0,d3
  393.     move.l    d2,d4
  394.     and.l    d6,d4
  395.     eor.l    d4,d2
  396.     or.l    d4,d3
  397.     lsr.l    d3
  398.     move.b    d3,(3*4,a4)    plane 3
  399.     swap    d3
  400.     move.b    d3,(1*4,a4)    plane 1
  401.     or.l    d0,d2
  402.     move.b    d2,(2*4,a4)    plane 2
  403.     swap    d2
  404.     move.b    d2,(a4)+    plane 0
  405.     ENDR
  406.  
  407.     lea    (6*4,a4),a4
  408.     move.l    (a4),(a3,a6.l)
  409.     move.l    -(a4),(a3)+
  410.     move.l    -(a4),(a2,a6.l*4)
  411.     move.l    -(a4),(a1,a6.l*4)
  412.     move.l    -(a4),(a2,a6.l*2)
  413.     move.l    -(a4),(a1,a6.l*2)
  414.     move.l    -(a4),(a2)+
  415.     move.l    -(a4),(a1)+
  416.  
  417.     cmpa.l    a1,a5
  418.     bne    .loop
  419.  
  420.     bra    mainloop
  421.  
  422.  
  423.  
  424. ;--------------------------------------
  425. ; wait for user
  426. www
  427.     moveq    #1,d1
  428.     CALLDOS    Delay
  429.     btst    #6,$bfe001
  430.     bne.b    www
  431.  
  432.  
  433. ;--------------------------------------
  434. ; free resources and exit
  435. ende
  436.     move.l    (rdargs,pc),d1
  437.     CALLDOS    FreeArgs
  438.     move.l    (fh,pc),d1
  439.     ble.b    .nofile
  440.     CALL    Close
  441. .nofile
  442.     move.l    (window,pc),d0
  443.     beq.b    .nowin
  444.     move.l    d0,a0
  445.     CALLINT    CloseWindow
  446. .nowin
  447.     move.l    (screen,pc),d0
  448.     beq.b    .noscr
  449.     move.l    d0,a0
  450.     CALLINT    CloseScreen
  451. .noscr
  452.     move.l    (chipaddr,pc),d0
  453.     beq.b    .nocmem
  454.     move.l    d0,a1
  455.     move.l    (screenplsz,pc),d0
  456.     lsl.l    #3,d0
  457.     CALLEXEC FreeMem
  458. .nocmem
  459.  
  460.  
  461.     moveq    #0,d0
  462.     rts
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471. ;--------------------------------------
  472. ; data area
  473.  
  474. dosnam    dc.b    "dos.library",0
  475. intunam    dc.b    "intuition.library",0
  476. dosbase        dc.l    0
  477. intuitionbase    dc.l    0
  478. offsetplanes    dc.l    0
  479. rdargs        dc.l    0
  480. template    dc.b    "PPMFILE/A",0
  481. filenamept    dc.l    0
  482. fh        dc.l    0
  483. loadsize    dc.l    0
  484. chipaddr    dc.l    0
  485.  
  486. picwidth    dc    0
  487. picheight    dc    0
  488.  
  489. picbpr3        dc    0
  490. linecount    dc    0
  491. screenwidth    dc    0
  492. screenplsz    dc.l    0
  493. chunkytab    ds.l    6
  494. chunkytmp    ds.l    8
  495.  
  496. window        dc.l    0
  497. newwindow
  498.     dc    0,0    ;leftedge, topedge
  499.     dc    32,32    ;width, height
  500.     dc.b    0,1    ;detailpen, blockpen
  501.     dc.l    0    ;IDCMP flags
  502.     dc.l    $31900    ;window flags
  503.     dc.l    0,0    ;firstgadget, checkmark
  504.     dc.l    0    ;title
  505.     dc.l    0,0    ;screen, bitmap
  506.     dc    0,0,0,0    ;min, max width, height
  507.     dc    $f    ;screen type
  508.  
  509.  
  510. screen        dc.l    0
  511. newscreen
  512.     dc    0,0    ;leftedge, topedge
  513.     dc    0,0    ;width, height
  514.     dc    8    ;depth
  515.     dc.b    0,1    ;detailpen, blockpen
  516.     dc    $8024    ;viewmodes
  517.     dc    $414f    ;type
  518.     dc.l    0,stitle,0    ;textattr, title, gadgets
  519.     dc.l    bmap    ;custombitmap
  520. screentaglist
  521.     dc.l    $80000032,$8024        ;SA_DisplayID
  522.     dc.l    $80000043,palette    ;SA_Colors32
  523.     dc.l    $80000034,3        ;SA_Overscan (OSCAN_MAX)
  524.     dc.l    0,0
  525. stitle    dc.b    "TruView_Screen",0,0
  526. bmap    ds.l    16
  527. palette    dc.l    $01000000,$00000000,$00000000,$00000000,$03000000,$00000000
  528.     dc.l    $00000000,$06000000,$00000000,$00000000,$09000000,$00000000
  529.     dc.l    $00000000,$0C000000,$00000000,$00000000,$0F000000,$00000000
  530.     dc.l    $00000000,$12000000,$00000000,$00000000,$15000000,$00000000
  531.     dc.l    $00000000,$18000000,$00000000,$00000000,$1B000000,$00000000
  532.     dc.l    $00000000,$1E000000,$00000000,$00000000,$21000000,$00000000
  533.     dc.l    $00000000,$24000000,$00000000,$00000000,$27000000,$00000000
  534.     dc.l    $00000000,$2A000000,$00000000,$00000000,$2E000000,$00000000
  535.     dc.l    $00000000,$31000000,$00000000,$00000000,$34000000,$00000000
  536.     dc.l    $00000000,$37000000,$00000000,$00000000,$3A000000,$00000000
  537.     dc.l    $00000000,$3D000000,$00000000,$00000000,$40000000,$00000000
  538.     dc.l    $00000000,$43000000,$00000000,$00000000,$46000000,$00000000
  539.     dc.l    $00000000,$49000000,$00000000,$00000000,$4C000000,$00000000
  540.     dc.l    $00000000,$4F000000,$00000000,$00000000,$52000000,$00000000
  541.     dc.l    $00000000,$55000000,$00000000,$00000000,$58000000,$00000000
  542.     dc.l    $00000000,$5B000000,$00000000,$00000000,$5E000000,$00000000
  543.     dc.l    $00000000,$61000000,$00000000,$00000000,$64000000,$00000000
  544.     dc.l    $00000000,$67000000,$00000000,$00000000,$6A000000,$00000000
  545.     dc.l    $00000000,$6D000000,$00000000,$00000000,$70000000,$00000000
  546.     dc.l    $00000000,$73000000,$00000000,$00000000,$76000000,$00000000
  547.     dc.l    $00000000,$79000000,$00000000,$00000000,$7C000000,$00000000
  548.     dc.l    $00000000,$7F000000,$00000000,$00000000,$82000000,$00000000
  549.     dc.l    $00000000,$85000000,$00000000,$00000000,$88000000,$00000000
  550.     dc.l    $00000000,$8B000000,$00000000,$00000000,$8E000000,$00000000
  551.     dc.l    $00000000,$91000000,$00000000,$00000000,$94000000,$00000000
  552.     dc.l    $00000000,$97000000,$00000000,$00000000,$9A000000,$00000000
  553.     dc.l    $00000000,$9D000000,$00000000,$00000000,$A0000000,$00000000
  554.     dc.l    $00000000,$A3000000,$00000000,$00000000,$A6000000,$00000000
  555.     dc.l    $00000000,$A9000000,$00000000,$00000000,$AC000000,$00000000
  556.     dc.l    $00000000,$AF000000,$00000000,$00000000,$B2000000,$00000000
  557.     dc.l    $00000000,$B5000000,$00000000,$00000000,$B8000000,$00000000
  558.     dc.l    $00000000,$BB000000,$00000000,$00000000,$BE000000,$00000000
  559.     dc.l    $00000000,$C1000000,$00000000,$00000000,$C4000000,$00000000
  560.     dc.l    $00000000,$C7000000,$00000000,$00000000,$CA000000,$00000000
  561.     dc.l    $00000000,$CD000000,$00000000,$00000000,$D0000000,$00000000
  562.     dc.l    $00000000,$D3000000,$00000000,$00000000,$D7000000,$00000000
  563.     dc.l    $00000000,$DA000000,$00000000,$00000000,$DD000000,$00000000
  564.     dc.l    $00000000,$E0000000,$00000000,$00000000,$E3000000,$00000000
  565.     dc.l    $00000000,$E6000000,$00000000,$00000000,$E9000000,$00000000
  566.     dc.l    $00000000,$EC000000,$00000000,$00000000,$EF000000,$00000000
  567.     dc.l    $00000000,$F2000000,$00000000,$00000000,$F5000000,$00000000
  568.     dc.l    $00000000,$F8000000,$00000000,$00000000,$FB000000,$00000000
  569.     dc.l    $00000000,$FF000000,$00000000,$00000000,$00000000,$00000000
  570.     dc.l    $00000000,$00000000,$03000000,$00000000,$00000000,$06000000
  571.     dc.l    $00000000,$00000000,$09000000,$00000000,$00000000,$0C000000
  572.     dc.l    $00000000,$00000000,$0F000000,$00000000,$00000000,$12000000
  573.     dc.l    $00000000,$00000000,$15000000,$00000000,$00000000,$18000000
  574.     dc.l    $00000000,$00000000,$1B000000,$00000000,$00000000,$1E000000
  575.     dc.l    $00000000,$00000000,$21000000,$00000000,$00000000,$24000000
  576.     dc.l    $00000000,$00000000,$27000000,$00000000,$00000000,$2A000000
  577.     dc.l    $00000000,$00000000,$2E000000,$00000000,$00000000,$31000000
  578.     dc.l    $00000000,$00000000,$34000000,$00000000,$00000000,$37000000
  579.     dc.l    $00000000,$00000000,$3A000000,$00000000,$00000000,$3D000000
  580.     dc.l    $00000000,$00000000,$40000000,$00000000,$00000000,$43000000
  581.     dc.l    $00000000,$00000000,$46000000,$00000000,$00000000,$49000000
  582.     dc.l    $00000000,$00000000,$4C000000,$00000000,$00000000,$4F000000
  583.     dc.l    $00000000,$00000000,$52000000,$00000000,$00000000,$55000000
  584.     dc.l    $00000000,$00000000,$58000000,$00000000,$00000000,$5B000000
  585.     dc.l    $00000000,$00000000,$5E000000,$00000000,$00000000,$61000000
  586.     dc.l    $00000000,$00000000,$64000000,$00000000,$00000000,$67000000
  587.     dc.l    $00000000,$00000000,$6A000000,$00000000,$00000000,$6D000000
  588.     dc.l    $00000000,$00000000,$70000000,$00000000,$00000000,$73000000
  589.     dc.l    $00000000,$00000000,$76000000,$00000000,$00000000,$79000000
  590.     dc.l    $00000000,$00000000,$7C000000,$00000000,$00000000,$7F000000
  591.     dc.l    $00000000,$00000000,$82000000,$00000000,$00000000,$85000000
  592.     dc.l    $00000000,$00000000,$88000000,$00000000,$00000000,$8B000000
  593.     dc.l    $00000000,$00000000,$8E000000,$00000000,$00000000,$91000000
  594.     dc.l    $00000000,$00000000,$94000000,$00000000,$00000000,$97000000
  595.     dc.l    $00000000,$00000000,$9A000000,$00000000,$00000000,$9D000000
  596.     dc.l    $00000000,$00000000,$A0000000,$00000000,$00000000,$A3000000
  597.     dc.l    $00000000,$00000000,$A6000000,$00000000,$00000000,$A9000000
  598.     dc.l    $00000000,$00000000,$AC000000,$00000000,$00000000,$AF000000
  599.     dc.l    $00000000,$00000000,$B2000000,$00000000,$00000000,$B5000000
  600.     dc.l    $00000000,$00000000,$B8000000,$00000000,$00000000,$BB000000
  601.     dc.l    $00000000,$00000000,$BE000000,$00000000,$00000000,$C1000000
  602.     dc.l    $00000000,$00000000,$C4000000,$00000000,$00000000,$C7000000
  603.     dc.l    $00000000,$00000000,$CA000000,$00000000,$00000000,$CD000000
  604.     dc.l    $00000000,$00000000,$D0000000,$00000000,$00000000,$D3000000
  605.     dc.l    $00000000,$00000000,$D7000000,$00000000,$00000000,$DA000000
  606.     dc.l    $00000000,$00000000,$DD000000,$00000000,$00000000,$E0000000
  607.     dc.l    $00000000,$00000000,$E3000000,$00000000,$00000000,$E6000000
  608.     dc.l    $00000000,$00000000,$E9000000,$00000000,$00000000,$EC000000
  609.     dc.l    $00000000,$00000000,$EF000000,$00000000,$00000000,$F2000000
  610.     dc.l    $00000000,$00000000,$F5000000,$00000000,$00000000,$F8000000
  611.     dc.l    $00000000,$00000000,$FB000000,$00000000,$00000000,$FF000000
  612.     dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  613.     dc.l    $03000000,$00000000,$00000000,$06000000,$00000000,$00000000
  614.     dc.l    $09000000,$00000000,$00000000,$0C000000,$00000000,$00000000
  615.     dc.l    $0F000000,$00000000,$00000000,$12000000,$00000000,$00000000
  616.     dc.l    $15000000,$00000000,$00000000,$18000000,$00000000,$00000000
  617.     dc.l    $1B000000,$00000000,$00000000,$1E000000,$00000000,$00000000
  618.     dc.l    $21000000,$00000000,$00000000,$24000000,$00000000,$00000000
  619.     dc.l    $27000000,$00000000,$00000000,$2A000000,$00000000,$00000000
  620.     dc.l    $2E000000,$00000000,$00000000,$31000000,$00000000,$00000000
  621.     dc.l    $34000000,$00000000,$00000000,$37000000,$00000000,$00000000
  622.     dc.l    $3A000000,$00000000,$00000000,$3D000000,$00000000,$00000000
  623.     dc.l    $40000000,$00000000,$00000000,$43000000,$00000000,$00000000
  624.     dc.l    $46000000,$00000000,$00000000,$49000000,$00000000,$00000000
  625.     dc.l    $4C000000,$00000000,$00000000,$4F000000,$00000000,$00000000
  626.     dc.l    $52000000,$00000000,$00000000,$55000000,$00000000,$00000000
  627.     dc.l    $58000000,$00000000,$00000000,$5B000000,$00000000,$00000000
  628.     dc.l    $5E000000,$00000000,$00000000,$61000000,$00000000,$00000000
  629.     dc.l    $64000000,$00000000,$00000000,$67000000,$00000000,$00000000
  630.     dc.l    $6A000000,$00000000,$00000000,$6D000000,$00000000,$00000000
  631.     dc.l    $70000000,$00000000,$00000000,$73000000,$00000000,$00000000
  632.     dc.l    $76000000,$00000000,$00000000,$79000000,$00000000,$00000000
  633.     dc.l    $7C000000,$00000000,$00000000,$7F000000,$00000000,$00000000
  634.     dc.l    $82000000,$00000000,$00000000,$85000000,$00000000,$00000000
  635.     dc.l    $88000000,$00000000,$00000000,$8B000000,$00000000,$00000000
  636.     dc.l    $8E000000,$00000000,$00000000,$91000000,$00000000,$00000000
  637.     dc.l    $94000000,$00000000,$00000000,$97000000,$00000000,$00000000
  638.     dc.l    $9A000000,$00000000,$00000000,$9D000000,$00000000,$00000000
  639.     dc.l    $A0000000,$00000000,$00000000,$A3000000,$00000000,$00000000
  640.     dc.l    $A6000000,$00000000,$00000000,$A9000000,$00000000,$00000000
  641.     dc.l    $AC000000,$00000000,$00000000,$AF000000,$00000000,$00000000
  642.     dc.l    $B2000000,$00000000,$00000000,$B5000000,$00000000,$00000000
  643.     dc.l    $B8000000,$00000000,$00000000,$BB000000,$00000000,$00000000
  644.     dc.l    $BE000000,$00000000,$00000000,$C1000000,$00000000,$00000000
  645.     dc.l    $C4000000,$00000000,$00000000,$C7000000,$00000000,$00000000
  646.     dc.l    $CA000000,$00000000,$00000000,$CD000000,$00000000,$00000000
  647.     dc.l    $D0000000,$00000000,$00000000,$D3000000,$00000000,$00000000
  648.     dc.l    $D7000000,$00000000,$00000000,$DA000000,$00000000,$00000000
  649.     dc.l    $DD000000,$00000000,$00000000,$E0000000,$00000000,$00000000
  650.     dc.l    $E3000000,$00000000,$00000000,$E6000000,$00000000,$00000000
  651.     dc.l    $E9000000,$00000000,$00000000,$EC000000,$00000000,$00000000
  652.     dc.l    $EF000000,$00000000,$00000000,$F2000000,$00000000,$00000000
  653.     dc.l    $F5000000,$00000000,$00000000,$F8000000,$00000000,$00000000
  654.     dc.l    $FB000000,$00000000,$00000000,$FF000000,$FF000000,$FF000000
  655.     dc.l    $FF000000,$00000000
  656.  
  657.  
  658. rtab
  659. i set 0
  660.     rept    254
  661. i set i+1
  662.     dc    i/3
  663.     endr
  664.     dc    84,84
  665. gtab
  666. i set 0
  667.     rept    254
  668. i set i+1
  669.     dc    i/3+85
  670.     endr
  671.     dc    169,169
  672. btab
  673. i set 0
  674.     rept    254
  675. i set i+1
  676.     dc    i/3+170
  677.     endr
  678.     dc    254,254
  679.  
  680. buffpt        dc.l    loadbuffer
  681.  
  682.  
  683.     section    bbbb,bss
  684. chunkybuffer    ds.b    70*1024
  685. loadbuffer    ds.b    50*1024
  686.